Automatic Test Generation for String Manipulation Programs using Symbolic Execution

نویسندگان

  • Anitha Gollamudi
  • Zehra Naz
چکیده

S ymbolic execution of string manipulation programs is challenging as the constraint solvers do not typically support logic over strings and non-string operations. KLEE[1] is a symbolic execution tool used to generate test cases with high coverage. It uses Simple Theorem Prover (STP) as its constraint solver. STP encodes constraints only as bit-vector logic and solves the constraints. It has no direct representation of strings. Strings and their operations (like concatentation, substring) have to be encoded in bit-vector logic and then passed onto STP for a solution. This renders STP unsuitable for analyzing arbitrary length strings. KLEE has some basic support for handling symbolic strings. However, the quality of test cases generated quickly deteriorates when string operations are used. Our initial analysis shows that it cannot handle arbitrarylength strings. The symbolic value is always bounded by its size. Clearly, this is undesirable in applications where the size of string is relatively unknown. The limitations are particularly relevant when testing applications for SQL injections in web servers like Apache or Nginx. We therefore aim to achieve the following: 1. Clearly identify the weaknesses of KLEE, as is, when handling symbolic strings on applications that use string operations 2. Compare and contrast the above results by porting KLEE to other string solver (CVC or Z3-str[2]) 3. Evaluate the above ported KLEE to detect SQL injections.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

KLOVER: A Symbolic Execution and Automatic Test Generation Tool for C++ Programs

We present the first symbolic execution and automatic test generation tool for C++ programs. First we describe our effort in extending an existing symbolic execution tool for C programs to handle C++ programs. We then show how we made this tool generic, efficient and usable to handle real-life industrial applications. Novel features include extended symbolic virtual machine, library optimizatio...

متن کامل

Empirical Evaluation of Metaheuristic Approaches for Symbolic Execution based Automated Test Generation

This paper empirically evaluates four meta-heuristic search techniques namely particle swarm optimization, artificial bee colony algorithm, Genetic Algorithm and Big Bang Big Crunch Algorithm for automatic test data generation for procedure oriented programs using structural symbolic testing method. Test data is generated for each feasible path of the programs. Experiments on ten benchmark prog...

متن کامل

Thesis for the Degree of Master of Science in Computer Science with specialisation in Software Engineering AUTOMATED TEST CASE GENERATION FOR FUNCTION BLOCK DIAGRAMS USING JAVA PATH FINDER AND SYMBOLIC EXECUTION

Testing Function Block Diagram (FBD) programs for safety-critical software components is of significant importance. Their failure or malfunction may result in a serious outcome and may cause severe damage. Consequently, a certain degree of certification is required to guarantee that the provided test cases cover the logical structure of the safety-critical software components. In practise, test...

متن کامل

Märlardalen University School of Innovation Design and Engineering Väster̊as, Sweden Thesis for the Degree of Master of Science in Software Engineering AUTOMATED TEST CASE GENERATION FOR FUNCTION BLOCK DIAGRAMS USING JAVA PATH FINDER AND SYMBOLIC EXECUTION

Testing Function Block Diagram (FBD) programs for safety-critical software components is of significant importance. Their failure or malfunction may result in a serious outcome and may cause severe damage. Consequently, a certain degree of certification is required to guarantee that the provided test cases cover the logical structure of the safety-critical software components. In practise, test...

متن کامل

Creating and Visualizing Test Data from Programming Exercises

Automatic assessment of programming exercises is typically based on testing approach. Most automatic assessment frameworks execute tests and evaluate test results automatically, but the test data generation is not automated. No matter that automatic test data generation techniques and tools are available. We have researched how the Java PathFinder software model checker can be adopted to the sp...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015